<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <script>
    //1.普通函数
  function foo() {
    console.log("foo函数被执行~")
  }
  foo()
  foo();  //会把（） [] {} 当做一个整体
  // if(){
  //}
  //默认分号是可以提供一个换行，但是这里可能不行
  //2.定义函数，定义完这个函数之后，会要求这个函数立即被执行
  (function bar(){//首先需要给这个函数一个小括号
console.log("bar函数被执行了~")
  })()//括号里面是函数的定义，后面接个小括号直接调用
  //{} 代码块、对象类型
  //() 控制优先级/函数的调用/函数的参数
  //[] 定义一个数组/表示从对象-数组中取值/对象的计算属性

  //3.立即执行函数的参数和返回值
  var result=(function(name){
    console.log("函数立即被执行~",name)
    return "helloWorld"
  })("why")
  </script>
</body>
</html>